Introducing Domain-Driven Design
from Domain Modeling Made Functional
開発者の仕事は「ソフトウェアを通じて問題を解決すること」であり、コーディングはソフトウェア開発の一側面に過ぎない。
そのため、優れた設計やコミュニケーションは、コーディング以上に重要である。
ソフトウェア開発をインプット(要件)とアウトプット(最終成果物)を持つパイプラインとして捉えると、garbage in, garbade out のルールが適用される。
インプットが悪ければ(要件が不明確だったり、設計が悪かったら)、コーディングしても良いアウトプットは生まれない。
DDD はすべてのソフトウェア開発に適しているわけではない。
たとえば、ゲーム開発やシステム・ソフトウェアなどは他のアプローチで構築できる。
しかし、エンジニア以外のチームと協力しなければならないビジネスソフトウェアやエンタープライズソフトウェアには特に有効である。
Domain Modeling Made Functional では、このようなソフトウェアに焦点を当てている。
共有されたモデルの重要性
共有されたモデルを作成するガイドライン
ビジネスイベントを通じてドメインを理解する
ドメインをサブドメインに分割する
境界づけられたコンテキストを利用した解決手段の作成
ユビキタス言語の創造
#DDD #Domain_Modeling_Made_Functional #読書メモ